package pres.lnk.learn.designpattern.a_factory;

/**
 * <p>简单工厂模式</p>
 * <pre>
 * 主要是生产产品，用户不关心产品怎么生产的，只需要拿到的产品能用就行了。
 * 参考场景：
 *  项目支持多种数据库，如：Mysql、Oracle等。用户根据需要可选择用哪个数据库。
 * 实现：
 *  1.先定义接口（先了解产品需要做什么事）。
 *  2.再根据不同的场景实现接口（做出特定场景可以使用的产品）。
 *  3.做一个工厂，作用根据用户场景生产对应场景的产品，用户直接使用该产品就可以了。
 *
 * </pre>
 *
 * @Author lnk
 * @Date 2018/1/31
 */
public class Main {
    public static void main(String[] args) {
        //创建一个工厂
        DatabaseFactory factory = new DatabaseFactory();

        //我使用的是Mysql
        Database database = factory.getShape("Mysql");
        database.select();

        //我使用的是Oracle
        database = factory.getShape("Oracle");
        database.select();

    }
}
